﻿using Compass.PurchaseService.Domain.Entities;
using Compass.Wasm.Shared.Wms;

namespace Compass.PurchaseService.Domain;

public interface IPurchaseRepository
{
    //NavItem
    Task<IQueryable<NavItem>> GetNavItemsAsync();
    Task<NavItem?> GetNavItemByIdAsync(Guid id);
    //扩展NavItem查询
    Task<NavItem?> GetNavItemByNumberAsync(string number);
    Task<IQueryable<NavItem>> GetNavItemsByFsAndShareAsync();



    //NavInvValuation
    Task<IQueryable<NavInvValuation>> GetNavInvValuationsAsync();
    Task<NavInvValuation?> GetNavInvValuationByIdAsync(Guid id);
    //扩展NavInvValuation查询
    Task<NavInvValuation?> GetNavInvValuationByNumberAndMonthAsync(string number,DateTime month);
    Task<IQueryable<NavInvValuation>> GetNavInvValuationsByNumberAndPeriodAsync(string number, DateTime start,DateTime end);

    //NavInvReportClass
    Task<IQueryable<NavInvReportClass>> GetNavInvReportClassesAsync();
    Task<NavInvReportClass?> GetNavInvReportClassByIdAsync(Guid id);
    //扩展NavItem查询
    //年月重复就算同一个
    Task<NavInvReportClass?> GetNavInvReportClassByMonthAsync(DateTime month);


    //NavInvReportGroup
    Task<IQueryable<NavInvReportGroup>> GetNavInvReportGroupsAsync();
    Task<NavInvReportGroup?> GetNavInvReportGroupByIdAsync(Guid id);
    //扩展NavItem查询
    Task<NavInvReportGroup?> GetNavInvReportGroupByMonthAndGroupAsync(DateTime month,Group_e group);



}